<!doctype html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/>
  <meta name="theme-color" content="#000000"/>
  <title>人码合一 - Louis Han</title>

  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">

  <script src="https://cdn.tailwindcss.com"></script>
  <script>
    tailwind.config = {
      theme: {
        extend: {
          colors: {
            'tech-blue': '#0080ff',
            'tech-red': '#ff0040',
            'dark-bg': '#000000',
            'dark-surface': '#0a0a0a',
            'dark-card': '#111111',
          }
        },
      },
    }
  </script>

  <style>
    pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.codehilite .hll { background-color: #ffffcc }
.codehilite { background: #f8f8f8; }
.codehilite .c { color: #3D7B7B; font-style: italic } /* Comment */
.codehilite .err { border: 1px solid #F00 } /* Error */
.codehilite .k { color: #008000; font-weight: bold } /* Keyword */
.codehilite .o { color: #666 } /* Operator */
.codehilite .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.codehilite .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.codehilite .cp { color: #9C6500 } /* Comment.Preproc */
.codehilite .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
.codehilite .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
.codehilite .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
.codehilite .gd { color: #A00000 } /* Generic.Deleted */
.codehilite .ge { font-style: italic } /* Generic.Emph */
.codehilite .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.codehilite .gr { color: #E40000 } /* Generic.Error */
.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.codehilite .gi { color: #008400 } /* Generic.Inserted */
.codehilite .go { color: #717171 } /* Generic.Output */
.codehilite .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.codehilite .gs { font-weight: bold } /* Generic.Strong */
.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.codehilite .gt { color: #04D } /* Generic.Traceback */
.codehilite .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.codehilite .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.codehilite .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.codehilite .kp { color: #008000 } /* Keyword.Pseudo */
.codehilite .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.codehilite .kt { color: #B00040 } /* Keyword.Type */
.codehilite .m { color: #666 } /* Literal.Number */
.codehilite .s { color: #BA2121 } /* Literal.String */
.codehilite .na { color: #687822 } /* Name.Attribute */
.codehilite .nb { color: #008000 } /* Name.Builtin */
.codehilite .nc { color: #00F; font-weight: bold } /* Name.Class */
.codehilite .no { color: #800 } /* Name.Constant */
.codehilite .nd { color: #A2F } /* Name.Decorator */
.codehilite .ni { color: #717171; font-weight: bold } /* Name.Entity */
.codehilite .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.codehilite .nf { color: #00F } /* Name.Function */
.codehilite .nl { color: #767600 } /* Name.Label */
.codehilite .nn { color: #00F; font-weight: bold } /* Name.Namespace */
.codehilite .nt { color: #008000; font-weight: bold } /* Name.Tag */
.codehilite .nv { color: #19177C } /* Name.Variable */
.codehilite .ow { color: #A2F; font-weight: bold } /* Operator.Word */
.codehilite .w { color: #BBB } /* Text.Whitespace */
.codehilite .mb { color: #666 } /* Literal.Number.Bin */
.codehilite .mf { color: #666 } /* Literal.Number.Float */
.codehilite .mh { color: #666 } /* Literal.Number.Hex */
.codehilite .mi { color: #666 } /* Literal.Number.Integer */
.codehilite .mo { color: #666 } /* Literal.Number.Oct */
.codehilite .sa { color: #BA2121 } /* Literal.String.Affix */
.codehilite .sb { color: #BA2121 } /* Literal.String.Backtick */
.codehilite .sc { color: #BA2121 } /* Literal.String.Char */
.codehilite .dl { color: #BA2121 } /* Literal.String.Delimiter */
.codehilite .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.codehilite .s2 { color: #BA2121 } /* Literal.String.Double */
.codehilite .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
.codehilite .sh { color: #BA2121 } /* Literal.String.Heredoc */
.codehilite .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
.codehilite .sx { color: #008000 } /* Literal.String.Other */
.codehilite .sr { color: #A45A77 } /* Literal.String.Regex */
.codehilite .s1 { color: #BA2121 } /* Literal.String.Single */
.codehilite .ss { color: #19177C } /* Literal.String.Symbol */
.codehilite .bp { color: #008000 } /* Name.Builtin.Pseudo */
.codehilite .fm { color: #00F } /* Name.Function.Magic */
.codehilite .vc { color: #19177C } /* Name.Variable.Class */
.codehilite .vg { color: #19177C } /* Name.Variable.Global */
.codehilite .vi { color: #19177C } /* Name.Variable.Instance */
.codehilite .vm { color: #19177C } /* Name.Variable.Magic */
.codehilite .il { color: #666 } /* Literal.Number.Integer.Long */

    body {
      font-family: 'Inter', system-ui, sans-serif;
      background: #000;
      color: #e5e5e5;
    }

    /* 简单边框 */
    .tech-border {
      border: 1px solid rgba(0, 128, 255, 0.2);
    }

    /* 导航链接 */
    .nav-link {
      position: relative;
      color: #888;
      transition: color 0.3s;
      text-decoration: none;
    }

    .nav-link:hover {
      color: #0080ff;
    }

    .nav-link::after {
      content: '';
      position: absolute;
      bottom: -4px;
      left: 0;
      width: 0;
      height: 1px;
      background: #0080ff;
      transition: width 0.3s;
    }

    .nav-link:hover::after {
      width: 100%;
    }

    /* 移动端菜单 */
    .mobile-menu {
      transform: translateX(100%);
      transition: transform 0.3s ease;
    }

    .mobile-menu.active {
      transform: translateX(0);
    }

    /* 移动端导航链接 */
    .mobile-nav-link {
      display: block;
      padding: 0.75rem 0;
      color: #d1d5db;
      text-decoration: none;
      transition: color 0.2s;
      font-weight: 500;
    }

    .mobile-nav-link:hover {
      color: #0080ff;
    }

    /* 滚动条 */
    ::-webkit-scrollbar {
      width: 6px;
    }

    ::-webkit-scrollbar-track {
      background: #111;
    }

    ::-webkit-scrollbar-thumb {
      background: #333;
      border-radius: 3px;
    }

    ::-webkit-scrollbar-thumb:hover {
      background: #444;
    }

    /* 代码高亮优化 */
    .highlight {
      background: #0a0a0a;
      border: 1px solid #222;
      border-radius: 8px;
      padding: 1rem;
      overflow-x: auto;
    }

    .highlight pre {
      margin: 0;
      font-family: 'JetBrains Mono', monospace;
      font-size: 0.875rem;
      line-height: 1.5;
    }
  </style>
</head>

<body class="min-h-screen bg-dark-bg">
  <!-- 导航栏 -->
  <header class="sticky top-0 z-40 bg-dark-surface/95 backdrop-blur-sm border-b tech-border">
    <div class="max-w-6xl mx-auto px-4 sm:px-6">
      <div class="flex items-center justify-between h-16">
        <!-- Logo -->
        <a href="/" class="flex items-center space-x-3">
          <div class="w-10 h-10 bg-tech-blue rounded-lg flex items-center justify-center">
            <span class="font-mono font-bold text-white">LH</span>
          </div>
          <span class="font-bold text-xl text-white hidden sm:block">louishwh</span>
        </a>

        <!-- 桌面端导航 -->
        <nav class="hidden md:flex items-center space-x-8">
            <a href="/" class="nav-link">Author</a>
            <a href="/blog" class="nav-link">Blogs</a>
            <a href="/projects" class="nav-link">Projects</a>

<!--          <a href="/books" class="nav-link">Books</a>-->
<!--          <a href="/papers" class="nav-link">Papers</a>-->
<!--          <a href="/companies" class="nav-link">Companies</a>-->
<!--            <a href="/showcase" class="nav-link">Showcase</a>-->
            <a href="/contact" class="nav-link">Contact</a>
        </nav>

        <!-- 移动端菜单按钮 -->
        <button id="menu-btn" class="md:hidden p-2 text-gray-400 hover:text-white">
          <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/>
          </svg>
        </button>
      </div>
    </div>

    <!-- 移动端菜单 -->
    <div id="mobile-menu" class="mobile-menu fixed top-16 right-0 bottom-0 w-64 bg-dark-surface border-l tech-border md:hidden">
      <nav class="p-6 space-y-1">
        <a href="/" class="mobile-nav-link">Author</a>
          <a href="/blog" class="mobile-nav-link">Blogs</a>
        <a href="/projects" class="mobile-nav-link">Projects</a>
<!--        <a href="/books" class="mobile-nav-link">Books</a>-->
<!--        <a href="/papers" class="mobile-nav-link">Papers</a>-->
<!--        <a href="/companies" class="mobile-nav-link">Companies</a>-->
<!--        <a href="/showcase" class="mobile-nav-link">Showcase</a>-->
        <a href="/contact" class="mobile-nav-link">Contact</a>
      </nav>
    </div>
  </header>

  <!-- 主内容 -->
  <main class="min-h-screen">
    <div class="max-w-6xl mx-auto px-4 sm:px-6 py-12">
      
<div class="max-w-4xl mx-auto">
  <!-- 返回导航 -->
  <div class="mb-8">
    <a href="/blog" class="inline-flex items-center text-gray-400 hover:text-white transition-colors">
      <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
        <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/>
      </svg>
      返回博客列表
    </a>
  </div>

  <article class="bg-dark-card rounded-lg tech-border overflow-hidden">
    <!-- 文章头部 -->
    <header class="p-8 pb-6">
      <!-- 文章标题 -->
      <h1 class="text-3xl lg:text-4xl font-bold text-white mb-6 leading-tight">A2A Protocol</h1>

      <!-- 文章元数据 -->
      <div class="flex flex-wrap items-center gap-6 mb-6 text-sm text-gray-400">
        <!-- 发布日期 -->
        <div class="flex items-center">
          <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"/>
          </svg>
          2025-04-15
        </div>

        <!-- 阅读时间 -->
        

      </div>

      <!-- 文章标签 -->
<!--      -->
<!--      <div class="flex flex-wrap gap-2">-->
<!--        -->
<!--        <a href="/blog?tag=AI"-->
<!--           class="text-xs px-3 py-1 rounded-full bg-gray-800 text-gray-400 hover:text-tech-blue transition-colors">-->
<!--          #AI-->
<!--        </a>-->
<!--        -->
<!--        <a href="/blog?tag=Agent"-->
<!--           class="text-xs px-3 py-1 rounded-full bg-gray-800 text-gray-400 hover:text-tech-blue transition-colors">-->
<!--          #Agent-->
<!--        </a>-->
<!--        -->
<!--        <a href="/blog?tag=人工智能"-->
<!--           class="text-xs px-3 py-1 rounded-full bg-gray-800 text-gray-400 hover:text-tech-blue transition-colors">-->
<!--          #人工智能-->
<!--        </a>-->
<!--        -->
<!--        <a href="/blog?tag=技术实践"-->
<!--           class="text-xs px-3 py-1 rounded-full bg-gray-800 text-gray-400 hover:text-tech-blue transition-colors">-->
<!--          #技术实践-->
<!--        </a>-->
<!--        -->
<!--      </div>-->
<!--      -->
    </header>

    <!-- 文章内容 -->
    <div class="px-8 pb-8">
      <!-- 文章摘要 -->
      

      <!-- 文章正文 -->
      <div class="prose prose-invert prose-lg max-w-none">
        
      </div>
    </div>

    <!-- 文章底部 -->
    <div class="px-8 py-6 border-t border-gray-800 bg-gray-900/30">
      <div class="flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4">
        <!-- 分享按钮 -->
        <div class="flex items-center space-x-3">
          <button onclick="copyArticleUrl()"
                  class="inline-flex items-center px-3 py-2 bg-gray-800 text-gray-300 rounded-lg hover:bg-gray-700 transition-colors text-sm">
            <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
              <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"/>
            </svg>
            复制链接
          </button>
        </div>

        <!-- 上下篇导航 -->
        <div class="flex items-center space-x-4 text-sm">
          

          
        </div>
      </div>
    </div>
  </article>
</div>

<!-- 样式 -->
<style>
  .prose-invert {
    color: #d1d5db;
    line-height: 1.7;
  }

  .prose-invert h1,
  .prose-invert h2,
  .prose-invert h3,
  .prose-invert h4,
  .prose-invert h5,
  .prose-invert h6 {
    color: #ffffff;
    font-weight: 600;
    margin-top: 2rem;
    margin-bottom: 1rem;
  }

  .prose-invert h2 {
    font-size: 1.5rem;
    border-bottom: 1px solid #374151;
    padding-bottom: 0.5rem;
  }

  .prose-invert h3 {
    font-size: 1.25rem;
  }

  .prose-invert p {
    margin-bottom: 1.5rem;
  }

  .prose-invert a {
    color: #0080ff;
    text-decoration: underline;
  }

  .prose-invert a:hover {
    color: #3b9eff;
  }

  .prose-invert code {
    background-color: #374151;
    color: #f9fafb;
    padding: 0.25rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.875em;
  }

  .prose-invert pre {
    background-color: #1f2937;
    border: 1px solid #374151;
    border-radius: 0.5rem;
    padding: 1rem;
    overflow-x: auto;
    margin: 1.5rem 0;
  }

  .prose-invert pre code {
    background-color: transparent;
    padding: 0;
  }

  .prose-invert blockquote {
    border-left: 4px solid #0080ff;
    background-color: #1f2937;
    padding: 1rem 1.5rem;
    margin: 1.5rem 0;
    border-radius: 0 0.5rem 0.5rem 0;
  }

  .prose-invert ul,
  .prose-invert ol {
    margin: 1.5rem 0;
    padding-left: 2rem;
  }

  .prose-invert li {
    margin-bottom: 0.5rem;
  }

  .prose-invert img {
    max-width: 100%;
    height: auto;
    border-radius: 0.5rem;
    margin: 1.5rem 0;
    border: 1px solid #374151;
  }

  .prose-invert table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    background-color: #1f2937;
    border-radius: 0.5rem;
    overflow: hidden;
  }

  .prose-invert th,
  .prose-invert td {
    padding: 0.75rem;
    border-bottom: 1px solid #374151;
    text-align: left;
  }

  .prose-invert th {
    background-color: #111827;
    font-weight: 600;
    color: #ffffff;
  }
</style>

<!-- 脚本 -->
<script>
function copyArticleUrl() {
    const url = window.location.href;

    if (navigator.clipboard) {
        navigator.clipboard.writeText(url).then(() => {
            showToast('链接已复制');
        });
    } else {
        // 降级方案
        const textArea = document.createElement('textarea');
        textArea.value = url;
        document.body.appendChild(textArea);
        textArea.select();
        document.execCommand('copy');
        document.body.removeChild(textArea);
        showToast('链接已复制');
    }
}

function showToast(message) {
    const toast = document.createElement('div');
    toast.className = 'fixed bottom-4 right-4 bg-tech-blue text-white px-4 py-2 rounded-lg z-50';
    toast.textContent = message;
    document.body.appendChild(toast);

    setTimeout(() => {
        document.body.removeChild(toast);
    }, 2000);
}
</script>

    </div>
  </main>

  <!-- 页脚 -->
  <footer class="border-t tech-border mt-20">
    <div class="max-w-6xl mx-auto px-4 sm:px-6 py-12">
      <!-- 信息卡片组 -->
      <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">

        <!-- 品牌卡片 -->
        <div class="bg-dark-card rounded-lg p-6 tech-border text-center">
          <h3 class="text-2xl font-bold text-white mb-2">人码合一</h3>
          <p class="text-sm text-gray-400">HUMAN CODE UNITY</p>
        </div>
        
        <!-- 状态卡片 -->
        <div class="bg-dark-card rounded-lg p-6 tech-border">
          <h4 class="text-sm font-mono text-gray-400 mb-3">SYSTEM STATUS</h4>
          <div class="space-y-2 text-sm">
            <div class="flex justify-between">
              <span class="text-gray-500">Version</span>
              <span class="font-mono text-tech-blue">v3.0.1</span>
            </div>
            <div class="flex justify-between">
              <span class="text-gray-500">Status</span>
              <span class="font-mono text-green-500">ONLINE</span>
            </div>
          </div>
        </div>

        <!-- 社交卡片 -->
        <div class="bg-dark-card rounded-lg p-6 tech-border">
          <h4 class="text-sm font-mono text-gray-400 mb-3">CONNECT</h4>
          <div class="flex space-x-4">
            <a href="https://github.com/louishan" class="text-gray-400 hover:text-white transition-colors">
              <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
                <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/>
              </svg>
            </a>
            <a href="https://twitter.com/louishan" class="text-gray-400 hover:text-white transition-colors">
              <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
                <path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/>
              </svg>
            </a>
            <a href="https://linkedin.com/in/louishan" class="text-gray-400 hover:text-white transition-colors">
              <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
                <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
              </svg>
            </a>
            <a href="mailto:louis@example.com" class="text-gray-400 hover:text-white transition-colors">
              <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 4.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/>
              </svg>
            </a>
          </div>
        </div>
      </div>

      <!-- 底部信息 -->
      <div class="flex flex-col md:flex-row items-center justify-between pt-8 border-t border-gray-800">
        <div class="flex items-center space-x-4 mb-4 md:mb-0">
          <span class="text-sm text-gray-500">© 2025 Louis Han</span>
          <span class="text-sm text-gray-500">|</span>
          <span class="text-sm text-gray-500">人码合一</span>
        </div>

        <div class="flex items-center space-x-4 text-xs text-gray-600">
          <span>Built with ❤️</span>
        </div>
      </div>
    </div>
  </footer>

  <script>
    // 移动端菜单控制
    const menuBtn = document.getElementById('menu-btn');
    const mobileMenu = document.getElementById('mobile-menu');
        let isMenuOpen = false;

    menuBtn.addEventListener('click', () => {
      isMenuOpen = !isMenuOpen;
      mobileMenu.classList.toggle('active', isMenuOpen);
      document.body.style.overflow = isMenuOpen ? 'hidden' : '';
    });

    // 点击菜单外关闭
    document.addEventListener('click', (e) => {
      if (isMenuOpen && !mobileMenu.contains(e.target) && !menuBtn.contains(e.target)) {
        isMenuOpen = false;
        mobileMenu.classList.remove('active');
        document.body.style.overflow = '';
      }
    });

    // 平滑滚动
    document.querySelectorAll('a[href^="#"]').forEach(anchor => {
      anchor.addEventListener('click', function (e) {
        e.preventDefault();
        const target = document.querySelector(this.getAttribute('href'));
        if (target) {
          target.scrollIntoView({
            behavior: 'smooth',
            block: 'start'
          });
        }
      });
    });

    // 页面加载完成后添加淡入效果
    window.addEventListener('load', () => {
      document.body.style.opacity = '1';
    });
  </script>

  <style>
    /* 初始状态 */
    body {
      opacity: 0;
      transition: opacity 0.3s ease;
    }

    /* 打印样式 */
    @media print {
      header, footer {
        display: none !important;
      }

      body {
        background: white !important;
        color: black !important;
      }

      .tech-border {
        border-color: #ddd !important;
      }
    }

    /* 响应式优化 */
    @media (max-width: 640px) {
      .highlight {
        margin-left: -1rem;
        margin-right: -1rem;
        border-radius: 0;
        border-left: none;
        border-right: none;
      }
    }
  </style>
</body>
</html>